var registroRTS=null;
var registroBeneficiosRTS=null;
var registroBajaRTS =null;
var fechaascenso=null;
var fechainicio=null;
var registroExpedientePersona = null;
var registroDocumentoExpediente=null;
var dsBeneficiosRTSPersonal =null;
var dsDocumentosExpedientes =null;
var dsRTSPersonal = null;
var winBusquedaExpediente =null;
var winGestionarAscensos = null;
var id_rts_mantenimiento = null;
var nuevoRTS = false;

function gestionarRTS(){
    var frmRTSCabecera =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    dsRTSPersonal=new Ext.data.Store({
        autoDestroy: true,
        url: "listaRTS.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaRTS",
            fields:
            [
                {name: "nrtpe_identificador", type: "integer"},
                {name: "nrtpe_totalrts"},
                {name: "crtpe_observaciones", type: "string"},
                {name: "brtpe_eliminado", type: "integer"},
                {name: "nrtpe_parrafo", type: "string"}
            ]
        })
    });

    dsRTSPersonal.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar los RTS"+response.responseText);
    });

    var grdRTS=new Ext.grid.GridPanel({
        store: dsRTSPersonal,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[{
            header: "Nro RTS",
            dataIndex: "nrtpe_identificador",
            width: 100,
            sortable:true,
            renderer:function(value, params, record){
                return f_verificaEliminado(value, params, record);
            }
        },{
            header: "Resultado",
            dataIndex: "crtpe_observaciones",
            width: 500,
            sortable:true,
            renderer:function(value, params, record){
               return f_verificaEliminado(value, params, record);
            }
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                if ($("txtidexpediente").value!=null && $("txtidexpediente").value!=""){
                    mantenerRTS(true,$("txtidpersona").value,null);
                }else{
                    alert("No tiene expediente registrado")
                }
            }
        }, '-', {
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
                if (registroRTS != null){
                    mantenerRTS(false,$("txtidpersona").value,registroRTS.data.nrtpe_identificador);
                }else{
                    alert("Debe seleccionar un registro");
                }
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){
                imprimirRTS(registroRTS.data.nrtpe_identificador);
            }
        }]
    });

    var seleccionRTS=grdRTS.getSelectionModel();
    seleccionRTS.on("rowselect",function(sm,fila,registro){
        registroRTS=registro;
    });

    dsRTSPersonal.load({
        params:{
            expediente:'-99'
        }
    });

    new Ajax.Request("frmCabeceraRTS.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmRTSCabecera.html=transport.responseText;
            var win = new Ext.Window({
                title:'Computo General de Tiempo de Servicio',
                closeAction:'destroy',
                width:800,
                height: 270,
                x:0,
                y:0,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 70,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmRTSCabecera
                },{
                    region: 'center',
                    height: 200,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdRTS
                }]
            });
            win.show();
        }
    });
}

function mantenerRTS(nuevo,idpepo, id_rts){
    nuevoRTS = nuevo;
    id_rts_mantenimiento=id_rts;

    var frmCabeceraExpediente=new Ext.Panel({
        bodyBorder:true,
        height:300,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    dsDocumentosExpedientes = new Ext.data.Store({
        autoDestroy:true,
        url:"listaDocumentosExpediente.jsp",
        reader: new Ext.data.JsonReader({
            root:"documentos",
            fields:[
                {name: "idfolio",type: "integer"},
                {name: "nrofolios",type: "integer"},
                {name: "idDocumento", type: "integer"},
                {name: "descripcionDocumento",type: "string"}
            ]
        })
    });
    dsDocumentosExpedientes.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error 701: Sucedio un error al cargar los documentos del expediente");
    });
    var grdDocumentosExpediente=new Ext.grid.GridPanel({
        store: dsDocumentosExpedientes,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Descripcion o Resumen",
            dataIndex: "descripcionDocumento",
            width: 320,
            sortable:true
        },{
            header: "Nro Folios",
            dataIndex: "nrofolios",
            width: 100,
            sortable:true
        }],
        tbar:[{
            text:'Visualizar',
            iconCls:'icon-preview',
            handler: function(){
                //visualizarDocumentoExpediente();
                verFolios(registroDocumentoExpediente.data.idDocumento);
            }
        }]
    });
    var seleccionDocumentoExpediente=grdDocumentosExpediente.getSelectionModel();
    seleccionDocumentoExpediente.on("rowselect",function(sm,fila,registro){
        registroDocumentoExpediente=registro;
    });

    dsBeneficiosRTSPersonal=new Ext.data.Store({
        autoDestroy: true,
        url: "listaAscensosRTS.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaAscensos",
            fields:
            [
                {name: "nhias_identificador",  type: "integer"},
                {name: "nhias_anio",  type: "integer"},
                {name: "dhias_fechaascenso",  type: "string"},
                {name: "npepo_identificador", type: "integer"},
                {name: "ngrad_identificador",  type: "integer"},
                {name: "chias_resolucion",  type: "string"},
                {name: "nhias_tiempo", type: "string"},
                {name: "nhias_anios",   type: "string"},
                {name: "nhias_meses", type: "string"},
                {name: "nhias_dias", type: "string"},
                {name: "cgrad_descripcion",  type: "string"},
                {name: "chias_motivobaja",  type: "string"},
                {name: "dhias_fechainicio",  type: "string"},
                {name: "bhias_incluido",  type: "integer"},
                {name: "nhias_tipo",  type: "integer"}
            ]
        })
    });

    dsBeneficiosRTSPersonal.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar los RTS"+response.responseText);
    });

    var grdBeneficios=new Ext.grid.GridPanel({
        store: dsBeneficiosRTSPersonal,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Año",
            dataIndex: "nhias_anio",
            width: 70,
            sortable:true
        },{
            header: "Grado",
            dataIndex: "cgrad_descripcion",
            width: 200,
            sortable:true
        },{
            header: "Fecha de Ascenso",
            dataIndex: "dhias_fechaascenso",
            width: 100,
            sortable:true
        },{
            header: "Tiempo",
            dataIndex: "nhias_tiempo",
            width: 150,
            sorteable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                agregarTiempoServicio(idpepo);
            }
        },'-',{
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
                if (registroBeneficiosRTS != null){
                    modificarTiempoServicio(registroBeneficiosRTS);
                }
            }
        },'-',{
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                if (registroBeneficiosRTS != null){
                    eliminarTiempoServicio(registroBeneficiosRTS.data.nhias_identificador);
                }
            }
        }]
    });

    var seleccionBeneficiosRTS=grdBeneficios.getSelectionModel();
    seleccionBeneficiosRTS.on("rowselect",function(sm,fila,registro){
        registroBeneficiosRTS=registro;
    });

    /* Bajas */

     dsBajasRTSPersonal=new Ext.data.Store({
        autoDestroy: true,
        url: "listaAscensosRTS.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaAscensos",
            fields:
            [
                {name: "nhias_identificador", type: "integer"},
                {name: "nhias_anio", type: "integer"},
                {name: "dhias_fechaascenso", type: "string"},
                {name: "npepo_identificador", type: "integer"},
                {name: "ngrad_identificador", type: "integer"},
                {name: "chias_resolucion", type: "string"},
                {name: "nhias_tiempo", type: "string"},
                {name: "nhias_anios", type: "string"},
                {name: "nhias_meses", type: "string"},
                {name: "nhias_dias", type: "string"},
                {name: "cgrad_descripcion", type: "string"},
                {name: "chias_motivobaja",  type: "string"},
                {name: "dhias_fechainicio",  type: "string"},
                {name: "bhias_incluido",  type: "integer"},
                {name: "nhias_tipo",  type: "integer"}
            ]
        })
    });

    dsBajasRTSPersonal.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar los RTS"+response.responseText);
    });

    var grdBajas=new Ext.grid.GridPanel({
        store: dsBajasRTSPersonal,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Año",
            dataIndex: "nhias_anio",
            width: 70,
            sortable:true
        },{
            header: "Motivo",
            dataIndex: "chias_motivobaja",
            width: 200,
            sortable:true
        },{
            header: "Fecha de Baja",
            dataIndex: "dhias_fechaascenso",
            width: 100,
            sortable:true
        },{
            header: "Tiempo",
            dataIndex: "nhias_tiempo",
            width: 150,
            sorteable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                agregarBajaServicio(idpepo);
            }
        },'-',{
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
                if (registroBajaRTS != null){
                    modificarBajaServicio(registroBajaRTS);
                }
            }
        },'-',{
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                if (registroBajaRTS != null){
                    eliminarTiempoServicio(registroBajaRTS.data.nhias_identificador);
                }
            }
        }]
    });

    var seleccionBajaRTS=grdBajas.getSelectionModel();
    seleccionBajaRTS.on("rowselect",function(sm,fila,registro){
        registroBajaRTS=registro;
    });

    dsBeneficiosRTSPersonal.reload({
        params:{
            tipo:1,
            id_rts:id_rts_mantenimiento
        }
    });
    dsBajasRTSPersonal.reload({
        params:{
            tipo:2,
            id_rts:id_rts_mantenimiento
        }
    });

    new Ajax.Request("frmExpedienteCausante.html",{
        method:"post",
        asynchronous:false,
        onSuccess: function(transport){
            frmCabeceraExpediente.html=transport.responseText;
            var winComptoGTS = new Ext.Window({
                title:(nuevo ? 'Agregar ' : 'Modificar ') + 'Computo General de Tiempo de Servicio ',
                closeAction:'destroy',
                id:'winComptoGTS',
                width:1000,
                height: 450,
                modal:true,
                shim:true,
                maximizable: false,
                resizable: false,
                animCollapse: false,
                layout: 'border',
                x:0,
                y:0,
                items:[ {
                    region: 'west',
                    title:'Expediente',
                    height: 420,
                    width: 500,
                    split: false,
                    border:false,
                    layout:'border',
                    xtype: 'panel',
                    items: [{
                        region: 'north',
                        height: 100,
                        width: 500,
                        split: false,
                        border: false,
                        layout: 'fit',
                        xtype:'panel',
                        items: frmCabeceraExpediente
                    },{
                        region: 'center',
                        height: 300,
                        width: 500,
                        split: false,
                        layout: 'fit',
                        border:false,
                        xtype: 'panel',
                        items: grdDocumentosExpediente
                    }]
                },{
                    region: 'center',
                    id:'registroaltas',
                    height: 250,
                    width: 500,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'border',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: [{
                        region: 'north',
                        title: 'Computo General de Tiempo de Servicios',
                        height: 200,
                        width: 500,
                        split: false,
                        border: false,
                        xtype: 'panel',
                        layout: 'fit',
                        bodyStyle: "background-color:#DFE8F6; border:0",
                        items: grdBeneficios
                    },{
                        region: 'center',
                        title: 'Bajas Intermedias',
                        height: 200,
                        width: 500,
                        split: false,
                        border: false,
                        xtype: 'panel',
                        layout: 'fit',
                        bodyStyle: "background-color:#DFE8F6; border:0",
                        items:  grdBajas
                    }]
                }],
                tbar:[{
                    text:'Resuelve',
                    iconCls:'icon-resolve',
                    handler: function(){
                        popUpCAlculaRTS();
                    }
                }],
                bbar:[{
                    text:'Cerrar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winComptoGTS.destroy();
                    }
                }]
            });
            winComptoGTS.show();
            $("txtidpersonal").value=idpepo;
            $("txtidexpediente").value = registroExpedientePersona.data.nexpe_identificador;
            $("txtexpediente").value=registroExpedientePersona.data.expediente;
            $("txtnombrebeneficiario").value=registroExpedientePersona.data.apenom;
            cargarTipoDocumento();

            if(id_rts_mantenimiento==null){
                Ext.getCmp("registroaltas").disable();
            }
        }
    });


}

function popUpCAlculaRTS(){
    
     var frmRTS =new Ext.Panel({
            bodyBorder:true,
            height:350,
            bodyStyle: "background-color:#DFE8F6; border:0"
    });
    var calculo_rts = null;
   
    new Ajax.Request("frmRTS.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmRTS.html=transport.responseText;
            var winRegistraRTS = new Ext.Window({
                title:(nuevoRTS ? 'Agregar ' : 'Modificar ') + 'Computo General de Tiempo de Servicio',
                closeAction:'destroy',
                id:'winRegistraRTS',
                width:500,
                height: 350,
                modal:true,
                shim:true,
                maximizable: false,
                resizable: false,
                animCollapse: false,
                layout: 'border',
                items:[{
                    region: 'center',
                    height: 250,
                    width: 1000,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmRTS
                }],
                bbar:[{
                    text:'Grabar',
                    id:'btnNuevo',
                    iconCls:'icon-resolve',
                    handler: function(){
                        insertarRTS();
                    }
                },{
                    text:'Modificar',
                    id:'btnModif',
                    hidden:true,
                    iconCls:'icon-resolve',
                    handler: function(){
                        actualizarRTS();
                    }
                },{
                    text:'Cerrar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winRegistraRTS.destroy();
                    }
                }]
            });

            winRegistraRTS.show();

            if (!nuevoRTS){               
                Ext.getCmp("btnModif").setVisible( true );
                Ext.getCmp("btnNuevo").setVisible( false );
                $("txtnrorts").value = registroRTS ==null ? id_rts_mantenimiento : registroRTS.data.nrtpe_identificador ;
                $("txtresultante").value = registroRTS.data.crtpe_observaciones != '' ? registroRTS.data.crtpe_observaciones :calculo_rts.texto;
                $("txtparrafo").value = registroRTS.data.nrtpe_parrafo;
           }
        }
    });

     new Ajax.Request("jsonCalcularRTS.jsp",{
        method:"post",
        parameters:{
           rts:id_rts_mantenimiento
        },
        onSuccess: function(transport){
            calculo_rts = transport.responseText.evalJSON();

            $("txtdias").value       =calculo_rts.dias;
            $("txtmeses").value      =calculo_rts.meses;
            $("txtanios").value      =calculo_rts.anios;
            $("txtresultante").value =calculo_rts.texto;
           if (!nuevo){
                $("txtresultante").value = registroRTS.data.crtpe_observaciones != '' ? registroRTS.data.crtpe_observaciones :calculo_rts.texto;
            }
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar calcular el RTS "+transport.responseText);
        }
    });

}

/*
function visualizarDocumentoExpediente(){

//        idfolio

alert('ver imagen ' + registroDocumentoExpediente.data.idDocumento);
    var width  = screen.width-50;
    var height = screen.height-100;
    var left   = 10;
    var top    = 10;
    var params = 'width='+width+',height='+height;
    params += ',top='+top+',left='+left;
    params += ',directories=no';
    params += ',location=no';
    params += ',menubar=no';
    params += ',resizable=yes';
    params += ',scrollbars=no';
    params += ',status=no';
    params += ',toolbar=no';
    window.open("frmVistaPreviaDocumento.jsp?id="+registroDocumentoExpediente.data.idDocumento,'windowname',params);
}
*/
function cargarTipoDocumento(){
    new Ajax.Request("lista-tipos-documento",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var eiSelect = $("cboTipoDocumento");
            removeAllOptions(eiSelect);
            var lstTipoDocumento = transport.responseText.evalJSON();
            for (var i=0;i<lstTipoDocumento.tipos.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstTipoDocumento.tipos[i].ntidoIdentificador);
                eOption.appendChild(document.createTextNode(lstTipoDocumento.tipos[i].ctidoDescripcion));
                eiSelect.appendChild(eOption);
            }
            cargarFoliosTipoDocumento();
        }
    });
}

function cargarFoliosTipoDocumento(){
    dsDocumentosExpedientes.reload({
        params:{
            id:registroExpedientePersona.data.nexpe_identificador,
            ntido_identificador: document.getElementById("cboTipoDocumento").value
        }
    });
}

function agregarTiempoServicio(idpepo){
    var frmGestionarAscensos =new Ext.Panel({
        bodyBorder:true,
        height:180,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarAscensos.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarAscensos .html=transport.responseText;
            winGestionarAscensos = new Ext.Window({
                title:'Gestionar Ascensos',
                closeAction:'destroy',
                width:600,
                height: 200,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                items:frmGestionarAscensos,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        insertarAscensos();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winGestionarAscensos.destroy();
                    }
                }]
            });
            winGestionarAscensos.show();
            fCargarGrados(1);
            fechaascenso= new Ext.form.DateField({
                renderTo:'txtfechaascenso',
                id:'fechaascenso2',
                format:'d/m/Y'
            });
            fechaincio= new Ext.form.DateField({
                renderTo:'txtfechainicio',
                id:'fechainicio2',
                format:'d/m/Y'
            });
            $("txtnpepoid").value =idpepo;
            $("txtnhiastipo").value = 1;
            $("txtnhiastipo").style.display='inline';
            $("trmotivo").style.display = 'none';
        }
    });
}

function modificarTiempoServicio(registro){
    var frmGestionarAscensos =new Ext.Panel({
        bodyBorder:true,
        height:180,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarAscensos.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarAscensos .html=transport.responseText;
            winGestionarAscensos = new Ext.Window({
                title:'Gestionar Ascensos',
                closeAction:'destroy',
                width:600,
                height: 200,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                items:frmGestionarAscensos,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        actualizarAscensos();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winGestionarAscensos.destroy();
                    }
                }]
            });
            winGestionarAscensos.show();
            
            fechaascenso= new Ext.form.DateField({
                renderTo:'txtfechaascenso',
                id:'fechaascenso2',
                format:'d/m/Y'
            });
            fechaincio= new Ext.form.DateField({
                renderTo:'txtfechainicio',
                id:'fechainicio2',
                format:'d/m/Y'
            });
             if( registro.data.nhias_tipo==3 ){
                fCargarGrados(2);
            }else{
                fCargarGrados(1);
            }
            $("txtnpepoid").value =registro.data.npepo_identificador;
            $("txtnhiasid").value = registro.data.nhias_identificador;
            $("txtanio").value =registro.data.nhias_anio;
            $("txtresolucion").value = registro.data.chias_resolucion;
            document.getElementById("cboGrado").value = registro.data.ngrad_identificador;
            $("txtanios").value = registro.data.nhias_anios;
            $("txtmeses").value = registro.data.nhias_meses;
            $("txtdias").value = registro.data.nhias_dias;
            fechaascenso.setValue(registro.data.dhias_fechaascenso);
            $("txtnhiastipo").value=registro.data.nhias_tipo;
           
            $("txtnhiastipo").style.display='inline';
            $("trmotivo").style.display = 'none';
            $("txtmotivo").value = registro.data.chias_motivobaja,
            //$("ckcontar").checked = registro.data.bhias_incluido==1?true:false ,
            //$("ckcontar").value = registro.data.bhias_incluido,
            fechaincio.setValue(registro.data.dhias_fechainicio)
        }
    });
}

function fechas(fin){
    Date.prototype.toMMDDYYYYString = function () {return isNaN (this) ? 'NaN' : [
            this.getMonth() > 8 ? (this.getMonth() + 1) : '0' + (this.getMonth() + 1),
            this.getDate() > 9 ? (this.getDate()) : '0' + (this.getDate()),
            this.getFullYear()
    ].join('/')};
    new Ajax.Request("jsonTraeFechaFin.jsp",{
        method:"post",
        asynchronous:false,
        parameters:{
           ffin:fin
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            return new Date( operacion.fecha ).toMMDDYYYYString();
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar calcular las fechas "+transport.responseText);
        }
    });
    
}

function calcularPeriodo(){

    var ini = Ext.getCmp('fechainicio2').getValue() ;
    var fin = Ext.getCmp('fechaascenso2').getValue();
    var strfecha = fin.getDate() + '/' + (fin.getMonth()+1) + '/'+ (fin.getFullYear());

    new Ajax.Request("jsonTraeFechaFin.jsp",{
        method:"post",
        asynchronous:false,
        parameters:{
           ffin: strfecha
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            //return new Date( operacion.fecha ).toMMDDYYYYString();

            var y1= ini.getFullYear();
            var m1=(ini.getMonth()+1);
            var d1=ini.getDate();

            var today = new Date( operacion.fecha );
            var y2= today.getFullYear();
            var m2=(today.getMonth()+1);
            var d2= today.getDate();

            var df = d2 - d1;
            var mf = m2 - m1;
            var af = y2 - y1;

            if( df<0 || mf<0 || af<0 ){
                if(df<0){
                    mf--;
                    df = 30 + df;
                }
                if(mf<0){
                    af--;
                    mf = 12+mf;
                }
            }

            $("txtdias").value  = df ;
            $("txtmeses").value = mf;
            $("txtanios").value = af;

        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar calcular las fechas "+transport.responseText);
        }
    });

   
}

function agregarBajaServicio(idpepo){
    var frmGestionarBaja =new Ext.Panel({
        bodyBorder:true,
        height:180,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarBajas.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarBaja.html=transport.responseText;
            winGestionarBaja = new Ext.Window({
                title:'Gestionar Deducciones',
                closeAction:'destroy',
                id:'winGestionarBaja',
                width:600,
                height: 200,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                items:frmGestionarBaja,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        insertarAscensos();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winGestionarBaja.destroy();
                    }
                }]
            });
            winGestionarBaja.show();
            fCargarGrados(1);
            fechaascenso= new Ext.form.DateField({
                renderTo:'txtfechaascenso',
                id:'fechaascenso2',
                format:'d/m/Y'
            });
            fechaincio= new Ext.form.DateField({
                renderTo:'txtfechainicio',
                id:'fechainicio2',
                format:'d/m/Y'
            });
            $("tdcontar").style.display='inline';
            $("txtnpepoid").value = idpepo;
            $("txtnhiastipo").value = 2;
            //$("trgrado").style.display = 'none';

        }
    });
}

function modificarBajaServicio(registro){
    var frmGestionarBajas =new Ext.Panel({
        bodyBorder:true,
        height:180,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarBajas.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarBajas.html=transport.responseText;
            winGestionarBajas = new Ext.Window({
                title:'Modificar Deducciones',
                closeAction:'destroy',
                id:'winGestionarBajas',
                width:600,
                height: 200,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                items:frmGestionarBajas,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        actualizarAscensos();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winGestionarBajas.destroy();
                    }
                }]
            });
            winGestionarBajas.show();
            fCargarGrados(1);
            fechaascenso= new Ext.form.DateField({
                renderTo:'txtfechaascenso',
                id:'fechaascenso2',
                format:'d/m/Y'
            });
             fechaincio= new Ext.form.DateField({
                renderTo:'txtfechainicio',
                id:'fechainicio2',
                format:'d/m/Y'
            });
            $("txtnpepoid").value =registro.data.npepo_identificador;
            $("txtnhiasid").value = registro.data.nhias_identificador;
            $("txtanio").value =registro.data.nhias_anio;
            $("txtresolucion").value = registro.data.chias_resolucion;
            document.getElementById("cboGrado").value = registro.data.ngrad_identificador;
            $("txtanios").value = registro.data.nhias_anios;
            $("txtmeses").value = registro.data.nhias_meses;
            $("txtdias").value = registro.data.nhias_dias;
            fechaascenso.setValue(registro.data.dhias_fechaascenso);
            fechaincio.setValue(registro.data.dhias_fechainicio);
            $("txtmotivo").value = registro.data.chias_motivobaja;
            $("tdcontar").style.display='inline';
            if(registro.data.bhias_incluido==1 ){$("ckcontar").checked = true;}
            $("txtnhiastipo").value = 2;
            ///$("trgrado").style.display = 'none';
        }
    });
}

function fCargarGrados(tipo_grado){
    new Ajax.Request("lista-grados",{
        method: "post",
        parameters:{
            tipo_grado: tipo_grado
        },
        asynchronous:false,
        onSuccess: function(transport){
            var egsSelect = $("cboGrado");
            removeAllOptions(egsSelect);
            var lstgrados = transport.responseText.evalJSON();
            for (var i=0;i<lstgrados.grado.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstgrados.grado[i].ngradIdentificador);
                eOption.appendChild(document.createTextNode(lstgrados.grado[i].cgradDescripcion));
                egsSelect.appendChild(eOption);
            }
        }
    });
}

function fIniciarBusqueda(e){
    var characterCode
    if(e && e.which){
        e = e
        characterCode = e.which
    }else{
        e = event
        characterCode = e.keyCode
    }
    if(characterCode == 13){
        fBuscarExpediente();
        return false
    }else{
        return true
    }
}

function fBuscarExpediente(){
    if ($("txtnroexp").value.length>0){
        var dsExpediente=new Ext.data.Store({
            autoDestroy: true,
            url: "listaExpedientePersona.jsp",
            reader: new Ext.data.JsonReader(
            {
                root: "Expedientes",
                fields:
                [
                    {name: "expediente",  type: "string"},
                    {name: "nexpe_identificador",  type: "integer"},
                    {name: "npepo_identificador",  type: "integer"},
                    {name: "npers_identificador",   type: "integer"},
                    {name: "apenom",   type: "string"}
                ]
            })
        });
        dsExpediente.on("exception",function(proxy, type, action, options, response, arg){
            Ext.MessageBox.alert("Error","Sucedio un error al cargar los perfiles"+response.responseText);
        });

        var grdExpedientePersona=new Ext.grid.GridPanel({
            store: dsExpediente,
            loadMask: false,
            height:300,
            width:600,
            plugins:[new Ext.ux.grid.Search({
                mode:'local',
                iconCls:false,
                minLength:2,
                width: 190
            })],
            columns:
            [new Ext.grid.RowNumberer(),
            {
                header: "Nro Expediente",
                dataIndex: "expediente",
                width: 100,
                sortable:true
            },{
                header: "Apellidos y Nombres del Administrado",
                dataIndex: "apenom",
                width: 400,
                sortable:true
            }],
            tbar:[{
                text:'Aceptar',
                iconCls:'icon-selector',
                handler: function(){
                    $("txtnroexp").value = registroExpedientePersona.data.expediente;
                    $("txtidexpediente").value = registroExpedientePersona.data.nexpe_identificador;
                    $("txtbeneficiario").value = registroExpedientePersona.data.apenom;
                    $("txtidpersona").value = registroExpedientePersona.data.npepo_identificador;
                    registroRTS=null;
                    winBusquedaExpediente.hide();
                    dsRTSPersonal.reload({
                        params:{
                            expediente:registroExpedientePersona.data.nexpe_identificador
                        }
                    });
                }
            }]

        });
        grdExpedientePersona.on("dblclick",function(grid,rowIndex,e){
            $("txtnroexp").value = registroExpedientePersona.data.expediente;
            $("txtidexpediente").value = registroExpedientePersona.data.nexpe_identificador;
            $("txtbeneficiario").value = registroExpedientePersona.data.apenom;
            $("txtidpersona").value = registroExpedientePersona.data.npepo_identificador;
            registroRTS=null;
            winBusquedaExpediente.hide();
            dsRTSPersonal.reload({
                params:{
                    expediente:registroExpedientePersona.data.nexpe_identificador
                }
            });
        });
        var seleccionExpediente=grdExpedientePersona.getSelectionModel();
        seleccionExpediente.on("rowselect",function(sm,fila,registro){
            registroExpedientePersona=registro;
        });
        dsExpediente.reload({
            params:{
                expediente:$("txtnroexp").value
            }
        });
        winBusquedaExpediente = new Ext.Window({
            title:'Busqueda de Expedientes',
            closeAction:'destroy',
            width:600,
            height:300,
            shim:false,
            modal:true,
            maximizable:false,
            resizable: false,
            animCollapse:false,
            layout: 'fit',
            items:grdExpedientePersona
        });
        winBusquedaExpediente.show();
    }else{
        alert("Debe ingresar al menos un caracter");
    }
}

function fLimpiarBusqueda(){
    $("txtnroexp").value ="";
    $("txtidexpediente").value = "";
    $("txtbeneficiario").value = "";
    registroExpedientePersona=null;
    dsRTSPersonal.reload({
        params:{
            expediente:"-99"
        }
    });
}

function insertarRTS(){
    new Ajax.Request("jsonInsertarRTS.jsp",{
        method:"post",
        parameters: {
            nexpe_identificador: $("txtidexpediente").value,
            crtpe_resolucion: $("txtresultante").value
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","Sus cambios se grabaron satisfacoriamente");
                $("txtnrorts").value = operacion.id;
                id_rts_mantenimiento = operacion.id;
                dsRTSPersonal.reload({
                    params:{
                        expediente:$("txtidexpediente").value
                    }
                });
                 Ext.getCmp("winRegistraRTS").destroy();
                 Ext.getCmp("registroaltas").enable();
                 nuevoRTS = false;
            }else{
                Information("Aviso del Sistema","No se pudo grabar sus cambios");
            }
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar insertar el RTS"+transport.responseText);
        }
    });
}

function actualizarRTS(){
    new Ajax.Request("jsonActualizarRTS.jsp",{
        method:"post",
        parameters: {
            nrtpe_identificador: $("txtnrorts").value,
            crtpe_resolucion: $("txtresultante").value,
            nrtpe_anios:$("txtanios").value,
            nrtpe_meses:$("txtmeses").value,
            nrtpe_dias:$("txtdias").value,
            nrtpe_parrafo:$("txtparrafo").value
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","Sus cambios se grabaron satisfacoriamente");
                dsRTSPersonal.reload({
                    params:{
                        expediente:$("txtidexpediente").value
                    }
                });
                Ext.getCmp("winRegistraRTS").destroy();
                Ext.getCmp("winComptoGTS").destroy();
            }else{
                Information("Aviso del Sistema","No se pudo grabar sus cambios");
            }
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar actualizar el RTS"+transport.responseText);
        }
    });
}

function insertarAscensos(){
    new Ajax.Request("jsonInsertarAscenso.jsp",{
        method:"post",
        parameters:{
            ngrad_identificador: document.getElementById("cboGrado").value,
            nhias_anio:  $("txtanio").value,
            nhias_anios: $("txtanios").value,
            nhias_meses: $("txtmeses").value,
            nhias_dias:  $("txtdias").value,
            chias_resolucion: $("txtresolucion").value,
            dhias_fechaascenso: Ext.getCmp('fechaascenso2').value,
            npepo_identificador: $("txtnpepoid").value,
            tipo: $("txtnhiastipo").value,
            id_rts:id_rts_mantenimiento,
            motivo:$("txtmotivo").value,
            incluido:$("ckcontar").checked ? 1:0,
            dhias_fechainicio:Ext.getCmp('fechainicio2').value
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","El registro se inserto satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo insertar el registro");
            }
            dsBeneficiosRTSPersonal.reload({
                params:{
                    tipo:1,
                    id_rts:id_rts_mantenimiento
                }
            });
            dsBajasRTSPersonal.reload({
                params:{
                    tipo:2,
                    id_rts:id_rts_mantenimiento
                }
            });

            if(Ext.getCmp("winGestionarBaja")!=null){
                Ext.getCmp("winGestionarBaja").destroy();
            }
            winGestionarAscensos.destroy();

             
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar el ascenso"+transport.responseText);
        }
    });
}

function actualizarAscensos(){    
    new Ajax.Request("jsonActualizarAscenso.jsp",{
        method:"post",
        parameters:{
            nhias_identificador: $("txtnhiasid").value,
            ngrad_identificador: document.getElementById("cboGrado").value,
            nhias_anio:  $("txtanio").value,
            nhias_anios: $("txtanios").value,
            nhias_meses: $("txtmeses").value,
            nhias_dias:  $("txtdias").value,
            chias_resolucion: $("txtresolucion").value,
            dhias_fechaascenso: Ext.getCmp('fechaascenso2').value,
            npepo_identificador: $("txtnpepoid").value,
            tipo: $("txtnhiastipo").value,
            id_rts:id_rts_mantenimiento,
            motivo:$("txtmotivo").value,
            incluido: $("ckcontar").checked ? 1:0,
            dhias_fechainicio: Ext.getCmp('fechainicio2').value
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","El registro se actualizar satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo actualizar el registro");
            }
            dsBeneficiosRTSPersonal.reload({
                params:{
                    tipo:1,
                    id_rts:id_rts_mantenimiento
                }
            });
            dsBajasRTSPersonal.reload({
                params:{
                    tipo:2,
                    id_rts:id_rts_mantenimiento
                }
            });
            if(Ext.getCmp("winGestionarBajas")!=null){
                Ext.getCmp("winGestionarBajas").destroy();
            }
            winGestionarAscensos.destroy();

        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar el ascenso"+transport.responseText);
        }
    });
}

function eliminarTiempoServicio(id){
    new Ajax.Request("jsonEliminarAscenso.jsp",{
        method:"post",
        parameters:{
            nhias_identificador: id
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","El registro se elimino satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo eliminar el registro");
            }
            dsBeneficiosRTSPersonal.reload({
                params:{
                    tipo:1,
                    id_rts:id_rts_mantenimiento
                }
            });
           dsBajasRTSPersonal.reload({
                params:{
                    tipo:2,
                    id_rts:id_rts_mantenimiento
                }
            });
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar eliminar el ascenso"+transport.responseText);
        }
    });
}

function imprimirRTS(rts){
    var width  = screen.width-50;
    var height = screen.height-100;
    var left   = 10;
    var top    = 10;
    var params = 'width='+width+',height='+height;
    params += ',top='+top+',left='+left;
    params += ',directories=no';
    params += ',location=no';
    params += ',menubar=no';
    params += ',resizable=yes';
    params += ',scrollbars=no';
    params += ',status=no';
    params += ',toolbar=no';
    window.open("RTSServlet.pdf?rts="+rts,'windowname',params);
}

function f_verificaEliminado(value,params, record){
    if (record.data.brtpe_eliminado==1)
        return "<span style='color:red'><strike>"+value+"</strike></span>"
    else
        return value
}